#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Time       :   16:11
# Author     : Y4
# Site       : 
# File       : 002 正则表达式次数.py
# Software   : PyCharm


'''
正则符号 :

    '.'         用于匹配除了换行符(\n)之外的所有字符
    '^'         用于匹配字符串的开始,即行首
    '$'         用于匹配字符串的末尾,(如果字符串末尾有\n,就匹配\n之前的那个字符),即行尾

定义正则验证次数
    '*'         用于将前面的模式匹配0或者多次 (贪婪模式,即尽可能多的匹配)            >=0
    '+'         用于将前面的模式匹配1或者多次 (贪婪模式,)                          >=1
    '?'         用于将前面的模式匹配0或者1次 (贪婪模式,)                           0,1
    '*? , +? , ??' 即上面的三种特殊模式的非贪婪模式,(尽可能少的匹配)
    '{m,n}'     用于将前面的模式匹配m次到n次(贪婪模式,)
    '{m,n}?'    即上面模式的非贪婪模式


    '\\'        '\'是转义字符,在特殊字符前面加\,特殊字符就失去了其所代表的含义
    '[]'        用于表示一组字符,如果^是第一个字符,则表示除了之外
    '|'         比如A|B用于匹配A或者B


'''

import re
msg = 'fdgu5ji1uk3212d2g34y475f1g654y325122d43t46y5'

result = re.search('[a-z][0-9][a-z]',msg)
print(result)                                           # <_sre.SRE_Match object; span=(3, 6), match='u5j'>


result = re.findall('[a-z][0-9][a-z]',msg)
print(result)                                           # ['u5j', 'i1u', 'd2g', 'f1g']


result = re.findall('[a-z][0-9]+[a-z]',msg)
print(result)                                           # ['u5j', 'i1u', 'k3212d', 'g34y', 'f1g', 'y325122d', 't46y']



# QQ号码   不能以0开头的5-11位数字
qq = '19444988888'
result = re.match('^[1-9][0-9]{4,10}$',qq)
print(result)




# 匹配用户名
username = 'admin001#s'
result = re.match('[a-zA-Z][a-z0-9A-Z]{5,}',username)
print(result)               # <_sre.SRE_Match object; span=(0, 8), match='admin001'>
result = re.match('[a-zA-Z][a-z0-9A-Z]{5,}$',username)
print(result)               # None




